1. Field of the Invention
This invention generally relates to a disk image, and more particularly relates to creating N customized disk images from a master disk image. The invention also relates to a virtual machine, and more particularly relates to creating N customized virtual machines.
2. Background Art
A disk image refers to a single file storing complete contents (e.g., programs, applications, OS, etc.) and data structure installed in a storage device or medium such as a hard drive, CD or DVD. A disk image can be created by sector-by-sector copy of a source storage device, and thereby perfectly replicate the data structure and the contents of the source storage device.
A virtual machine refers to a software implementation of a machine that executes programs like a real machine and, includes system and/or platform virtual machines (for example a Xen domU type of platform virtualization, or a VMWare virtual machine).
A master disk image refers to a template disk image or an original disk image from which identical disk images are created.
Currently, in CoW (Copy-On-Write) techniques employed when multiple users ask for resources which are initially indistinguishable, the computing system may provide them with pointers to a same resource. However, when a user tries to modify a copy of the resource, the computing system creates a private copy to prevent changes becoming visible to everyone else. A primary advantage of the CoW is that if a user never makes any modification to a copy of the resource, no private copy is created.
To perform a customization (e.g., changing files) in a disk image, a traditional solution first creates an identical disk image from the master disk image, e.g., by copying the master image. Then, the traditional solution performs a customization on the identical disk image by booting the identical disk image and executing the customization within a virtual machine. In this traditional solution, a system administrator manually logs into the executing virtual machine to enable the virtual machine to perform specific operations (e.g., running some software applications) to perform the customization.
In another traditional solution, a system administrator “mounts” a file system on the identical disk image. This traditional solution requires information about a format or structure of the file system. This traditional solution interprets the file system structure and allows manipulation of a file inside the identical disk image to create a customized disk image. “Mounting” the file system refers to making the file system ready for use by an operating system, e.g., by reading certain data structure from the identical disk image to a memory device. In this traditional solution, the mounting is executed from another machine which is not associated with the identical disk image (e.g., a virtual machine not booted from the identical disk image).
However, these traditional solutions treats each customized disk image creation as an independent task. Thus, creating customized disk images becomes a time-consuming and complicated task. Hence, it is highly desirable to provide a system or a method for mass customization of identical disk images without treating each customization as an independent task.